// 1. 科室对象的类型
export interface DepartItem {
  id: string
  name: string
}

export interface DepartData extends DepartItem {
  child: DepartItem[]
}

// 2. 图片对象的类型
export interface Image {
  id: string
  url: string
}
// 3. 问诊描述对象的类型
export interface ConsultInfo {
  illnessDesc: string;
  illnessTime: number;
  consultFlag: number;
  pictures: Image[];
}

// 4. 预支付对象(请求和响应)类型
export interface OrderPreParams {
  /**
   * 可使用优惠券id,当使用优惠券，且指定了优惠券时，传值
   */
  couponId?: string;
  /**
   * type为1找医生，必传医生信息，返回医生服务费信息
   */
  docId?: string;
  /**
   * 极速问诊级别：0普通1三甲
   */
  illnessType: string;
  /**
   * 问诊类型1找医生2极速问诊3开药问诊
   */
  type: string;
  /**
   * useCoupon,默认值1，即使用优惠券
   * 传0，不使用优惠券
   * 不传，默认为是，使用优惠券，
   * 其中，不传优惠券id,默认按照最大优惠券使用，
   * 传了优惠券id,表示使用指定的优惠券
   */
  useCoupon?: string;
  [property: string]: any;
}

/**
 * 返回数据
 */
export interface OrderPreData {
  /**
   * 实付金额
   */
  actualPayment: number;
  /**
   * 优惠券抵扣
   */
  couponDeduction: number;
  /**
   * 使用的优惠券id-使用优惠券时，返回
   */
  couponId?: string;
  /**
   * 极速问诊类型：0普通1三甲,极速问题必须有值
   */
  illnessType?: number;
  /**
   * 应付款/价格-图文或者极速的费用，极速普通10元，三甲39元
   */
  payment: number;
  /**
   * 积分可抵扣
   */
  pointDeduction: number;
  /**
   * 1问医生2极速问诊2开药问诊--默认是1
   */
  type?: number;
  [property: string]: any;
}

// 5. 生成订单对象类型(请求)
/**
 * 订单参数
 */
export interface OrderParams {
  /**
   * 开药门诊-过敏史0无1有2不清楚
   */
  allergicHistory?: number;
  /**
   * 找医生/极速问诊-是否就诊过0未就诊1就诊过
   */
  consultFlag?: number;
  /**
   * 使用优惠券，必传可使用优惠券id
   */
  couponId?: string;
  /**
   * 选择的科室id-极速问诊必填(选择的科室)
   */
  depId?: string;
  /**
   * 咨询的医生-类型为找医生问诊，字段是必须的
   */
  docId?: string;
  /**
   * 开药门诊-生育状态及计划0无1备孕中2已怀孕3哺乳期
   */
  fertilityStatus?: number;
  /**
   * 病情--症状描述
   */
  illnessDesc: string;
  /**
   * 找医生/极速问诊-患病时间1一周内2一月内3半年内4半年以上
   */
  illnessTime?: number;
  /**
   * 极速问诊类型：0普通1三甲
   */
  illnessType?: string;
  /**
   * 开药门诊-肝功能0正常1异常2不清楚
   */
  liverFunction?: number;
  /**
   * 开药问诊-开药问诊的药品id集合
   */
  medicines?: Medicine[];
  /**
   * 患者id,用于关联患者信息
   */
  patientId: string;
  /**
   * 补充病例信息-图片集合
   */
  pictures?: Image[];
  /**
   * 开药门诊-肾功能0正常1异常2不清楚
   */
  renalFunction?: number;
  /**
   * 就诊类型1找医生 2极速问诊 3开药问诊默认是1
   */
  type: string;
  [property: string]: any;
}

export interface Medicine {
  /**
   * 选择的药品id
   */
  id: string;
  /**
   * 选择的药品数量
   */
  quantity: number;
  [property: string]: any;
}

// 6. 支付参数
export interface PayParams {
  /**
   * 订单id
   */
  orderId: string;
  /**
   * 上课自测时，传值：http://localhost:端口号/+回调页面，
   * vue版本测试环境，传值：http://测试环境域名/+回调页面，
   * 用于决定付款成功后，回调地址是本地还是测试环境地址
   */
  payCallback?: string;
  /**
   * 支付方式0微信支付，1支付宝2云闪付
   */
  paymentMethod?: string;
  [property: string]: any;
}